package articleStudy.stream;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;

/**
 * 试验一下TreeSet
 */
public class TreeSetTest {
    public static void main(String[] args) {
//        TreeSet<Person> ts=new TreeSet<Person>();

        //将字符串按照长度排序
        TreeSet<String> ts = new TreeSet<>(new Length());
        List<String> list = Arrays.asList("aaaaa", "z", "wc", "nba", "cba");
        ts.addAll(list);

        System.out.println(ts);
    }
}

/**
 * 按照person的顺序来排序，实现Comparable接口中的compaerTo方法
 */
class Person implements Comparable<Person> {
    private String name;
    private int age;

    public int compareTo(Person o) {
        return 0;                //当compareTo方法返回0的时候集合中只有一个元素
//        return 1;                //当compareTo方法返回正数的时候集合会怎么存就怎么取
//        return -1;                //当compareTo方法返回负数的时候集合会倒序存储
    }
}

/**
 * 定义一个类，实现Comparable接口，并重写compare()方法
 */
class Length implements Comparator<String> {

    @Override
    public int compare(String s1, String s2) {   //按照字符串的长度比较
        int num = s1.length() - s2.length();        //长度作为主要田间
        return num == 0 ? s1.compareTo(s2) : num;                //内容作为次要田间
    }
}